package num206;

/**
 * @author : DuJiabao
 * @Date : 2021/1/25 11:46
 * @Project : sword-finger-offer
 * @File : null.java
 * @Desc : 反转一个单链表。
 * https://leetcode-cn.com/problems/reverse-linked-list/
 */
class Solution {
    public ListNode reverseList(ListNode head) {
        ListNode cur = head;  // 指向当前结点的指针
        ListNode prev = null; // 之前当前结点的前一个结点的指针
        while (cur != null) {
            ListNode next = cur.next;  // 保存当前结点的下一个结点，防止丢失
            cur.next = prev; // 当前结点指向前一个结点
            prev = cur;  // 前一个结点往后移动
            cur = next; // 当前结点往后移动
        }
        return prev;
    }
}
